//package com.rest.demo.Service;
//
//import com.rest.demo.repository.Dysmt.Access_token;
//import com.rest.demo.repository.PostDTO;
//import com.rest.demo.util.restUtil;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.configurationprocessor.json.JSONException;
//import org.springframework.http.HttpEntity;
//import org.springframework.http.HttpHeaders;
//import org.springframework.http.MediaType;
//import org.springframework.http.ResponseEntity;
//import org.springframework.stereotype.Service;
//import org.springframework.util.LinkedMultiValueMap;
//import org.springframework.util.MultiValueMap;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.client.RestTemplate;
//import org.springframework.web.util.UrlPathHelper;
//
//import javax.servlet.http.HttpServletRequest;
//import java.io.UnsupportedEncodingException;
//import java.net.URI;
//import java.util.HashMap;
//import java.util.Map;
//
//
//@Service
//
//@Slf4j
//public class Resttemplate {
//
//
//    private static final String Dymwurl = "http://api.wpbom.com/api/query.php?msg=";
//
//
//    @Autowired
//    private RestTemplate restTemplate; //此模板需要到config下配置
//
//    @Autowired
//    private restUtil XRestUtil;
//
//    public String getHttp() {
//        String url = "http://auths-test.dysmt.cn/oauth/authorize?client_id={client_id}&response_type={response_type}&grant_type={grant_type}&scope={scope}&redirect_uri={redirect_uri}";
//        //组装请求参数
//        Map<String, Object> parmMap = new HashMap<String, Object>();
//        parmMap.put("client_id", "057ffa4052294d45af9b9bac69dc4c8d");
//        parmMap.put("response_type", "code");
//        parmMap.put("grant_type", "authorization_code");
//        parmMap.put("scope", "snsapi_baseinfo");
//        parmMap.put("redirect_uri", "https://127.0.0.1/user");
//        System.out.println(url);
//        String result = XRestUtil.get(url, parmMap);
//        System.out.println(result);
//        return result;
//    }
//
//
//    //自动跳转网页地址
//    public String AutoJump() {
//
//        String url = "http://auths-test.dysmt.cn/oauth/authorize?client_id=057ffa4052294d45af9b9bac69dc4c8d&response_type=code&grant_type=authorization_code&scope=snsapi_baseinfo&redirect_uri=http://127.0.0.1/";
//        ResponseEntity<String> str = restTemplate.getForEntity(url, String.class);
//        System.out.println(str.getBody());
//        return "<body onload=\"javascript:link.click()\">\n" +
//                "<a id=\"link\" href=\"http://auths-test.dysmt.cn/oauth/authorize?client_id=057ffa4052294d45af9b9bac69dc4c8d&response_type=code&grant_type=authorization_code&scope=snsapi_baseinfo&redirect_uri=http://127.0.0.1/\"><b>csdn</b></a>\n" +
//                "</body";
//    }
//
////
//
//
//
//
//    public String getDetails(
//            @RequestParam(value="client_id", required=true) String client_id,
//            @RequestParam(value="response_type", required=false) String response_type,
//            @RequestParam(value="redirect_uri", required=true) String redirect_uri,
//            @RequestParam(value="scope", required=false) String scope
//            ){
//
//
//        return null;
//    }
//
//
//
//    @Autowired
//
//
//    //postForLocation() 方法的使用
////    postForLocation的传参的类型、个数、用法基本都和postForObject()或postForEntity()一致。
////    和前两者的唯一区别在于返回值是一个URI。该URI返回值体现的是：用于提交完成数据之后的
////    页面跳转，或数据提交完成之后的下一步数据操作URI。
//    public URI postForLocation() {
//        // 请求地址
//        String url = "http://jsonplaceholder.typicode.com/posts";
//
//        PostDTO postDTO = new PostDTO();
//        postDTO.setUserId(110);
//        postDTO.setTitle("zimug 发布文章");
//        postDTO.setBody("zimug 发布文章 测试内容");
//
//        // 发送post请求，并输出结果
//        URI uri = restTemplate.postForLocation(url, postDTO);
//        System.out.println(uri);
//        return uri;//结果http://jsonplaceholder.typicode.com/posts/101
//    }
//
//
//    //postForObject模拟表单数据提交
////    提交x-www-form-urlencoded格式的数据
//    public String postForObjectForm() {
//
//        // 请求地址
//        String url = "http://auths-test.dysmt.cn/oauth/token";
//
//
//        // 请求头设置,x-www-form-urlencoded格式的数据
//        HttpHeaders headers = new HttpHeaders();
//        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
//
//        //提交参数设置
//        MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
//        map.add("code", "TRb1Dh");
//        map.add("client_id", "057ffa4052294d45af9b9bac69dc4c8d");
//        map.add("client_secret", "2faa6ccb0ca94bfc84222a8c7aa31c5c");
//        map.add("grant_type", "authorization_code");
//        map.add("redirect_uri", "https://127.0.0.1/");
//
//        // 组装请求体
//        HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(map, headers);
//
//        // 发送post请求，并打印结果，以String类型接收响应结果JSON字符串
//        String result = restTemplate.postForObject(url, request, String.class);
//        System.out.println(result);
//        return result;
//    }
//
//
//    //postForObject发送JSON格式请求
//    // 向指定的URL提交一个Post(帖子).
//    public Access_token postForObjectW() {
//        // 要发送的数据对象
//        Access_token Access_token = new Access_token();
//        Access_token.setCode("TRb1Dh");
//        Access_token.setClient_id("057ffa4052294d45af9b9bac69dc4c8d");
//        Access_token.setClient_secret("2faa6ccb0ca94bfc84222a8c7aa31c5c");
//        Access_token.setGrant_type("authorization_code");
//        Access_token.setRedirect_uri("https://127.0.0.1/");
//        String url = "http://auths-test.dysmt.cn/oauth/token";
//        // 请求头设置,x-www-form-urlencoded格式的数据
//        HttpHeaders headers = new HttpHeaders();
//        headers.setContentType(MediaType.APPLICATION_JSON);
//        // 组装请求体
//        HttpEntity<Access_token> request = new HttpEntity<Access_token>(Access_token, headers);
//
//        Access_token rest = restTemplate.postForObject(url, request, Access_token.class);
//
//        return rest;
//    }
//
//
//    public String PostformData(String Code) throws JSONException {
//        // 请求地址
//        String url = "http://auths-test.dysmt.cn/oauth/token";
//        //提交参数设置
//        MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
//        map.add("code", Code);
//        map.add("client_id", "057ffa4052294d45af9b9bac69dc4c8d");
//        map.add("client_secret", "2faa6ccb0ca94bfc84222a8c7aa31c5c");
//        map.add("grant_type", "authorization_code");
//        map.add("redirect_uri", "https://127.0.0.1/");
//
////
//        HttpHeaders headers = new HttpHeaders();
//        headers.setContentType(MediaType.MULTIPART_FORM_DATA);//
//        // 组装请求体
//        HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(map, headers);
//        ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class);
////        JSONObject json = new JSONObject();
////        json.put("code", "11bxqt");
////        json.put("client_id", "057ffa4052294d45af9b9bac69dc4c8d");
////        json.put("client_secret", "2faa6ccb0ca94bfc84222a8c7aa31c5c");
////        json.put("grant_type", "authorization_code");
////        json.put("redirect_uri", "http://127.0.0.1/");
////        RestTemplate restTemplate = RestTemplateUtil.getInstance("utf-8");
////        String result = restTemplate.postForObject(url, json, String.class);
//        log.info(request.toString());
//        return response.getBody();
//
//    }
//
//
//    /**
//     * 获得当前访问的URL路径
//     *
//     * @param request
//     * @return
//     */
//    public static String getLocation(HttpServletRequest request) {
//        UrlPathHelper helper = new UrlPathHelper();
//        StringBuffer buff = request.getRequestURL();
//        String uri = request.getRequestURI();
//        String origUri = helper.getOriginatingRequestUri(request);
//        buff.replace(buff.length() - uri.length(), buff.length(), origUri);
//        String queryString = helper.getOriginatingQueryString(request);
//        if (queryString != null) {
//            buff.append("?").append(queryString);
//        }
//        try {
//            return new String(buff.toString().getBytes(), "iso-8859-1");
//        } catch (UnsupportedEncodingException e) {
//            return buff.toString();
//        }
//    }
//
//
////Post直接传参获取Token
//    public void Post2(String Code){
//
//        String url = "https://auths-test.dysmt.cn/oauth/token?code=" + Code + "&client_id=057ffa4052294d45af9b9bac69dc4c8d&client_secret=2faa6ccb0ca94bfc84222a8c7aa31c5c&grant_type=authorization_code&redirect_uri=http://127.0.0.1/test";
//        HttpHeaders headers = new HttpHeaders();
//        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
//        headers.setContentType(type);
//        String requestJson = "{...}";
//        HttpEntity<String> entity = new HttpEntity<String>(requestJson,headers);
//        String result = restTemplate.postForObject(url, entity, String.class);
//        System.out.println(result);
//
//    }
//
//
//
//
//
//
//}
//
